package com.softeem.date;

import java.io.File;
import java.util.Date;

/**
 * Date类
 *  用表表示特定的瞬间时间,精确到毫秒
 *  前面学习的System类中有静态方法可以获取到当前时间的毫秒数
 *  static long currentTimeMillis()
 *      返回当前时间（以毫秒为单位）。
 *  查询api发现,Date类的很多构造函数已经弃用了,有了新的类来进行代替
 */
public class Date_01 {
    public static void main(String[] args) {
        //使用无参的构造函数进行创建
        Date date = new Date();
        System.out.println(date);//Sat Mar 29 14:49:54 CST 2025

        Date date1 = new Date(System.currentTimeMillis());
        System.out.println(date1);//Sat Mar 29 14:50:34 CST 2025

        File file = new File("C:\\file\\code\\0329\\src\\com\\softeem\\date\\Date_01.java");
        //获取到当前系统中文件的时间
        long mod = file.lastModified();
        Date date2 = new Date(mod);
        System.out.println(date2);//Sat Mar 29 14:52:47 CST 2025

        //long ----> Date 使用的是Date(long t)的构造函数
        //Date ----> long 使用Date类中的方法getTime()
        long t1 = date2.getTime();
        System.out.println(t1);//1743231300241

        int year = date2.getYear(); // 1900年1月1日开始的
        System.out.println("year = " + year);//year = 125

        int month = date2.getMonth();
        System.out.println("month = " + month);//month = 2 在日期时间的表示里面月份从0开始的

        int day = date2.getDay();
        System.out.println("day = " + day);//day = 6 day表示星期

        int d = date2.getDate();
        System.out.println(d);//29 date表示日期

        int hours = date2.getHours();
        System.out.println("hours = " + hours);//hours = 15

        int minutes = date2.getMinutes();
        System.out.println("minutes = " + minutes);

        int seconds = date2.getSeconds();
        System.out.println("seconds = " + seconds);

        //比较日期的方法
        //boolean after(Date when); : 测试日期是否在指定的日期之后
        //boolean before(Date when); : 测试日期是否在指定的日期之前

        Date date3 = new Date(System.currentTimeMillis());
        //date2是文件最后修改的时间
        boolean b1 = date3.after(date2);
        System.out.println(b1);//true

        boolean b2 = date3.before(date2);
        System.out.println(b2);

        //比较两个日期的先后顺序
        //0表示两个日期是一样的, < 0 表示调用方法的日期在参数日期之前   >0 调用方法的日期在参数日期之后
        int index = date3.compareTo(date2);
        System.out.println(index);
    }
}
